import { BasicColumn } from '/@/components/Table';
import { FormSchema } from '/@/components/Table';
import { rules } from '/@/utils/helper/validator';
import { render } from '/@/utils/common/renderUtils';
import { getPeriodTree } from './HubTeamIndex.api';
import { useUserStore } from '/@/store/modules/user';
const userStore = useUserStore();
//列表数据
import dayjs from 'dayjs';
//列表数据
export const columns: BasicColumn[] = [
  {
    title: '主键',
    align: 'center',
    dataIndex: 'id',
    ifShow: false,
  },
  {
    title: '考核周期',
    align: 'center',
    dataIndex: 'periodCode',
  },
  // {
  //   title: '考核频度',
  //   align: 'center',
  //   dataIndex: 'periodType',
  //   ifShow: false,
  // },
  // {
  //   title: '组织编码',
  //   align: 'center',
  //   dataIndex: 'orgCode',
  //   ifShow: false,
  // },
  // {
  //   title: '组织名称',
  //   align: 'center',
  //   dataIndex: 'orgName',
  //   ifShow: false,
  // },
  // {
  //   title: '指标类型编码',
  //   align: 'center',
  //   dataIndex: 'indexTypeCode',
  //   ifShow: false,
  // },
  {
    title: '指标类型',
    align: 'center',
    dataIndex: 'indexTypeName',
  },
  // {
  //   title: '指标编码',
  //   align: 'center',
  //   dataIndex: 'indexCode',
  //   ifShow: false,
  // },
  {
    title: '指标名称',
    align: 'center',
    dataIndex: 'indexName',
  },
  {
    title: '标准分值',
    align: 'center',
    dataIndex: 'standardScore',
  },
  // {
  //   title: '状态',
  //   align: 'center',
  //   dataIndex: 'status',
  //   ifShow: false,
  // },
  // {
  //   title: '数据来源（0：本地 1：导入 2：历史指标库导入）',
  //   align: 'center',
  //   dataIndex: 'dataStatus',
  //   ifShow: false,
  // },
  // {
  //   title: '适用单位',
  //   align: 'center',
  //   dataIndex: 'suitUnit',
  //   ifShow: false,
  // },
  // {
  //   title: '排序',
  //   align: 'center',
  //   dataIndex: 'displayOrder',
  //   ifShow: false,
  // },
  // {
  //   title: '创建日期',
  //   align: 'center',
  //   dataIndex: 'sysCreateDate',
  //   customRender: ({ text }) => {
  //     return !text ? '' : text.length > 10 ? text.substr(0, 10) : text;
  //   },
  //   ifShow: false,
  // },
];
// export const currentMoth = () => {
//   const year = new Date().getFullYear();
//   let month = new Date().getMonth() + 1;
//   if (10 > month) {
//     // @ts-ignore
//     month = '0' + month;
//   }
//   return year + month;
// };
//查询数据
export const searchFormSchema: FormSchema[] = [
  {
    field: 'periodCode',
    label: '考核周期',
    component: 'ApiTreeSelect',
    componentProps: {
      api: getPeriodTree,
      fieldNames: {
        children: 'child',
        label: 'periodName',
        value: 'periodCode',
      },
    },
    defaultValue: dayjs().format('YYYY'),
    colProps: { span: 8 },
  },
  {
    field: 'orgCode',
    component: 'Select',
    label: '班组1',
    componentProps: {
      options: userStore.getTeamList,
    },
    defaultValue: userStore.getOrgCode,
    colProps: { span: 8 },
  },
  {
    field: 'indexTypeName',
    label: '指标类型',
    component: 'Input',
    colProps: { span: 8 },
  },
  {
    field: 'indexName',
    label: '指标名称',
    component: 'Input',
    colProps: { span: 8 },
  },
];
//表单数据
export const formSchema: FormSchema[] = [
  {
    label: '考核周期',
    field: 'periodCode',
    component: 'ApiTreeSelect',
    componentProps: {
      api: getPeriodTree,
      fieldNames: {
        children: 'child',
        label: 'periodName',
        value: 'periodCode',
      },
    },
    required: true,
    defaultValue: dayjs().format('YYYY'),
  },
  {
    label: '组织编码',
    field: 'orgCode',
    component: 'Input',
    show: false,
  },
  {
    label: '组织名称',
    field: 'orgName',
    component: 'Input',
    required: true,
    dynamicDisabled: () => {
      return true;
    },
  },
  {
    label: '指标类型编码',
    field: 'indexTypeCode',
    component: 'Input',
    show: false,
  },
  {
    label: '指标类型',
    field: 'indexTypeName',
    component: 'Input',
    required: true,
    // dynamicDisabled: () => {
    //   return true;
    // },
  },
  {
    label: '指标名称',
    field: 'indexName',
    component: 'Input',
    required: true,
  },
  {
    label: '标准分值',
    field: 'standardScore',
    component: 'InputNumber',
    required: true,
  },
  {
    label: '指标定义',
    field: 'indexDef',
    component: 'InputTextArea',
    componentProps: {
      maxlength: 50,
      showCount: true,
    },
  },
  {
    label: '评价标准',
    field: 'scoreDesc',
    component: 'InputTextArea',
    componentProps: {
      maxlength: 50,
      showCount: true,
    },
  },
  // TODO 主键隐藏字段，目前写死为ID
  {
    label: '',
    field: 'id',
    component: 'Input',
    show: false,
  },
];

/**
 * 流程表单调用这个方法获取formSchema
 * @param param
 */
export function getBpmFormSchema(_formData): FormSchema[] {
  // 默认和原始表单保持一致 如果流程中配置了权限数据，这里需要单独处理formSchema
  return formSchema;
}

export const treeOption: Record<string, any> = {
  url: '/emp/hubTeamIndexType/getList',
  allNode: false,
};
